package co.edu.presentation.businessDelegate;

import co.edu.usbcali.control.ActividadesLogic;
import co.edu.usbcali.control.AmbitosLogic;
import co.edu.usbcali.control.ClasesLogic;
import co.edu.usbcali.control.CostosLogic;
import co.edu.usbcali.control.CostosPorProyectoLogic;
import co.edu.usbcali.control.EmpresaLogic;
import co.edu.usbcali.control.IActividadesLogic;
import co.edu.usbcali.control.IAmbitosLogic;
import co.edu.usbcali.control.IClasesLogic;
import co.edu.usbcali.control.ICostosLogic;
import co.edu.usbcali.control.ICostosPorProyectoLogic;
import co.edu.usbcali.control.IEmpresaLogic;
import co.edu.usbcali.control.ILenguajesDeprogramacionLogic;
import co.edu.usbcali.control.IProyectosLogic;
import co.edu.usbcali.control.IReglaEnProyectoLogic;
import co.edu.usbcali.control.IReglasLogic;
import co.edu.usbcali.control.ISubactividadLogic;
import co.edu.usbcali.control.ISubactividadPorActividadLogic;
import co.edu.usbcali.control.ITaxonomiaLogic;
import co.edu.usbcali.control.ITiposLogic;
import co.edu.usbcali.control.IUsuariosLogic;
import co.edu.usbcali.control.LenguajesDeprogramacionLogic;
import co.edu.usbcali.control.ProyectosLogic;
import co.edu.usbcali.control.ReglaEnProyectoLogic;
import co.edu.usbcali.control.ReglasLogic;
import co.edu.usbcali.control.SubactividadLogic;
import co.edu.usbcali.control.SubactividadPorActividadLogic;
import co.edu.usbcali.control.TaxonomiaLogic;
import co.edu.usbcali.control.TiposLogic;
import co.edu.usbcali.control.UsuariosLogic;
import co.edu.usbcali.modeloo.Actividades;
import co.edu.usbcali.modeloo.Ambitos;
import co.edu.usbcali.modeloo.Clases;
import co.edu.usbcali.modeloo.Costos;
import co.edu.usbcali.modeloo.CostosPorProyecto;
import co.edu.usbcali.modeloo.Empresa;
import co.edu.usbcali.modeloo.LenguajesDeprogramacion;
import co.edu.usbcali.modeloo.Proyectos;
import co.edu.usbcali.modeloo.ReglaEnProyecto;
import co.edu.usbcali.modeloo.Reglas;
import co.edu.usbcali.modeloo.Subactividad;
import co.edu.usbcali.modeloo.SubactividadPorActividad;
import co.edu.usbcali.modeloo.Taxonomia;
import co.edu.usbcali.modeloo.Tipos;
import co.edu.usbcali.modeloo.Usuarios;

import java.math.BigDecimal;

import java.util.Date;
import java.util.List;
import java.util.Set;


/**
 * Use a Business Delegate to reduce coupling between presentation-tier clients and business services.
 * The Business Delegate hides the underlying implementation details of the business service, such as lookup and access details of the EJB architecture.
 *
 * The Business Delegate acts as a client-side business abstraction; it provides an abstraction for, and thus hides,
 * the implementation of the business services. Using a Business Delegate reduces the coupling between presentation-tier clients and
 * the system's business services. Depending on the implementation strategy, the Business Delegate may shield clients from possible
 * volatility in the implementation of the business service API. Potentially, this reduces the number of changes that must be made to the
 * presentation-tier client code when the business service API or its underlying implementation changes.
 *
 * However, interface methods in the Business Delegate may still require modification if the underlying business service API changes.
 * Admittedly, though, it is more likely that changes will be made to the business service rather than to the Business Delegate.
 *
 * Often, developers are skeptical when a design goal such as abstracting the business layer causes additional upfront work in return
 * for future gains. However, using this pattern or its strategies results in only a small amount of additional upfront work and provides
 * considerable benefits. The main benefit is hiding the details of the underlying service. For example, the client can become transparent
 * to naming and lookup services. The Business Delegate also handles the exceptions from the business services, such as java.rmi.Remote
 * exceptions, Java Messages Service (JMS) exceptions and so on. The Business Delegate may intercept such service level exceptions and
 * generate application level exceptions instead. Application level exceptions are easier to handle by the clients, and may be user friendly.
 * The Business Delegate may also transparently perform any retry or recovery operations necessary in the event of a service failure without
 * exposing the client to the problem until it is determined that the problem is not resolvable. These gains present a compelling reason to
 * use the pattern.
 *
 * Another benefit is that the delegate may cache results and references to remote business services. Caching can significantly improve performance,
 * because it limits unnecessary and potentially costly round trips over the network.
 *
 * A Business Delegate uses a component called the Lookup Service. The Lookup Service is responsible for hiding the underlying implementation
 * details of the business service lookup code. The Lookup Service may be written as part of the Delegate, but we recommend that it be
 * implemented as a separate component, as outlined in the Service Locator pattern (See "Service Locator" on page 368.)
 *
 * When the Business Delegate is used with a Session Facade, typically there is a one-to-one relationship between the two.
 * This one-to-one relationship exists because logic that might have been encapsulated in a Business Delegate relating to its interaction
 * with multiple business services (creating a one-to-many relationship) will often be factored back into a Session Facade.
 *
 * Finally, it should be noted that this pattern could be used to reduce coupling between other tiers, not simply the presentation and the
 * business tiers.
 *
 * @author Zathura Code Generator http://code.google.com/p/zathura
 *
 */
public class BusinessDelegatorView {
    private BusinessDelegatorView() {
    }

    public static List<Actividades> getActividades() throws Exception {
        IActividadesLogic actividadesLogic = new ActividadesLogic();

        return actividadesLogic.getActividades();
    }

    public static void saveActividades(Date fechafinactividad,
        Date fechainicioactividad, Integer idactividad, String nombreactividad,
        Integer numeropersonalenactividad, Integer idproyecto_Proyectos)
        throws Exception {
        IActividadesLogic actividadesLogic = new ActividadesLogic();
        actividadesLogic.saveActividades(fechafinactividad,
            fechainicioactividad, idactividad, nombreactividad,
            numeropersonalenactividad, idproyecto_Proyectos);
    }

    public static void deleteActividades(Integer idactividad)
        throws Exception {
        IActividadesLogic actividadesLogic = new ActividadesLogic();
        actividadesLogic.deleteActividades(idactividad);
    }

    public static void updateActividades(Date fechafinactividad,
        Date fechainicioactividad, Integer idactividad, String nombreactividad,
        Integer numeropersonalenactividad, Integer idproyecto_Proyectos)
        throws Exception {
        IActividadesLogic actividadesLogic = new ActividadesLogic();
        actividadesLogic.updateActividades(fechafinactividad,
            fechainicioactividad, idactividad, nombreactividad,
            numeropersonalenactividad, idproyecto_Proyectos);
    }

    public static Actividades getActividades(Integer idactividad)
        throws Exception {
        IActividadesLogic actividadesLogic = new ActividadesLogic();
        Actividades actividades = null;

        try {
            actividades = actividadesLogic.getActividades(idactividad);
        } catch (Exception e) {
            throw e;
        }

        return actividades;
    }

    public static List<Actividades> findByCriteriaInActividades(
        Object[] variables, Object[] variablesBetween,
        Object[] variablesBetweenDates) throws Exception {
        IActividadesLogic actividadesLogic = new ActividadesLogic();

        return actividadesLogic.findByCriteria(variables, variablesBetween,
            variablesBetweenDates);
    }

    public static List<Actividades> findPageActividades(String sortColumnName,
        boolean sortAscending, int startRow, int maxResults)
        throws Exception {
        IActividadesLogic actividadesLogic = new ActividadesLogic();

        return actividadesLogic.findPageActividades(sortColumnName,
            sortAscending, startRow, maxResults);
    }

    public static Long findTotalNumberActividades() throws Exception {
        IActividadesLogic actividadesLogic = new ActividadesLogic();

        return actividadesLogic.findTotalNumberActividades();
    }

    public static List<Ambitos> getAmbitos() throws Exception {
        IAmbitosLogic ambitosLogic = new AmbitosLogic();

        return ambitosLogic.getAmbitos();
    }

    public static void saveAmbitos(Integer idambito, String nombreambito)
        throws Exception {
        IAmbitosLogic ambitosLogic = new AmbitosLogic();
        ambitosLogic.saveAmbitos(idambito, nombreambito);
    }

    public static void deleteAmbitos(Integer idambito)
        throws Exception {
        IAmbitosLogic ambitosLogic = new AmbitosLogic();
        ambitosLogic.deleteAmbitos(idambito);
    }

    public static void updateAmbitos(Integer idambito, String nombreambito)
        throws Exception {
        IAmbitosLogic ambitosLogic = new AmbitosLogic();
        ambitosLogic.updateAmbitos(idambito, nombreambito);
    }

    public static Ambitos getAmbitos(Integer idambito)
        throws Exception {
        IAmbitosLogic ambitosLogic = new AmbitosLogic();
        Ambitos ambitos = null;

        try {
            ambitos = ambitosLogic.getAmbitos(idambito);
        } catch (Exception e) {
            throw e;
        }

        return ambitos;
    }

    public static List<Ambitos> findByCriteriaInAmbitos(Object[] variables,
        Object[] variablesBetween, Object[] variablesBetweenDates)
        throws Exception {
        IAmbitosLogic ambitosLogic = new AmbitosLogic();

        return ambitosLogic.findByCriteria(variables, variablesBetween,
            variablesBetweenDates);
    }

    public static List<Ambitos> findPageAmbitos(String sortColumnName,
        boolean sortAscending, int startRow, int maxResults)
        throws Exception {
        IAmbitosLogic ambitosLogic = new AmbitosLogic();

        return ambitosLogic.findPageAmbitos(sortColumnName, sortAscending,
            startRow, maxResults);
    }

    public static Long findTotalNumberAmbitos() throws Exception {
        IAmbitosLogic ambitosLogic = new AmbitosLogic();

        return ambitosLogic.findTotalNumberAmbitos();
    }

    public static List<Clases> getClases() throws Exception {
        IClasesLogic clasesLogic = new ClasesLogic();

        return clasesLogic.getClases();
    }

    public static void saveClases(Integer idclases, String nombreclases)
        throws Exception {
        IClasesLogic clasesLogic = new ClasesLogic();
        clasesLogic.saveClases(idclases, nombreclases);
    }

    public static void deleteClases(Integer idclases) throws Exception {
        IClasesLogic clasesLogic = new ClasesLogic();
        clasesLogic.deleteClases(idclases);
    }

    public static void updateClases(Integer idclases, String nombreclases)
        throws Exception {
        IClasesLogic clasesLogic = new ClasesLogic();
        clasesLogic.updateClases(idclases, nombreclases);
    }

    public static Clases getClases(Integer idclases) throws Exception {
        IClasesLogic clasesLogic = new ClasesLogic();
        Clases clases = null;

        try {
            clases = clasesLogic.getClases(idclases);
        } catch (Exception e) {
            throw e;
        }

        return clases;
    }

    public static List<Clases> findByCriteriaInClases(Object[] variables,
        Object[] variablesBetween, Object[] variablesBetweenDates)
        throws Exception {
        IClasesLogic clasesLogic = new ClasesLogic();

        return clasesLogic.findByCriteria(variables, variablesBetween,
            variablesBetweenDates);
    }

    public static List<Clases> findPageClases(String sortColumnName,
        boolean sortAscending, int startRow, int maxResults)
        throws Exception {
        IClasesLogic clasesLogic = new ClasesLogic();

        return clasesLogic.findPageClases(sortColumnName, sortAscending,
            startRow, maxResults);
    }

    public static Long findTotalNumberClases() throws Exception {
        IClasesLogic clasesLogic = new ClasesLogic();

        return clasesLogic.findTotalNumberClases();
    }

    public static List<Costos> getCostos() throws Exception {
        ICostosLogic costosLogic = new CostosLogic();

        return costosLogic.getCostos();
    }

    public static void saveCostos(Integer idcostos, String nombre,
        Integer otros, Integer renta, Integer salario,
        Integer serviciospublicos, Integer totalcostos)
        throws Exception {
        ICostosLogic costosLogic = new CostosLogic();
        costosLogic.saveCostos(idcostos, nombre, otros, renta, salario,
            serviciospublicos, totalcostos);
    }

    public static void deleteCostos(Integer idcostos) throws Exception {
        ICostosLogic costosLogic = new CostosLogic();
        costosLogic.deleteCostos(idcostos);
    }

    public static void updateCostos(Integer idcostos, String nombre,
        Integer otros, Integer renta, Integer salario,
        Integer serviciospublicos, Integer totalcostos)
        throws Exception {
        ICostosLogic costosLogic = new CostosLogic();
        costosLogic.updateCostos(idcostos, nombre, otros, renta, salario,
            serviciospublicos, totalcostos);
    }

    public static Costos getCostos(Integer idcostos) throws Exception {
        ICostosLogic costosLogic = new CostosLogic();
        Costos costos = null;

        try {
            costos = costosLogic.getCostos(idcostos);
        } catch (Exception e) {
            throw e;
        }

        return costos;
    }

    public static List<Costos> findByCriteriaInCostos(Object[] variables,
        Object[] variablesBetween, Object[] variablesBetweenDates)
        throws Exception {
        ICostosLogic costosLogic = new CostosLogic();

        return costosLogic.findByCriteria(variables, variablesBetween,
            variablesBetweenDates);
    }

    public static List<Costos> findPageCostos(String sortColumnName,
        boolean sortAscending, int startRow, int maxResults)
        throws Exception {
        ICostosLogic costosLogic = new CostosLogic();

        return costosLogic.findPageCostos(sortColumnName, sortAscending,
            startRow, maxResults);
    }

    public static Long findTotalNumberCostos() throws Exception {
        ICostosLogic costosLogic = new CostosLogic();

        return costosLogic.findTotalNumberCostos();
    }

    public static List<CostosPorProyecto> getCostosPorProyecto()
        throws Exception {
        ICostosPorProyectoLogic costosPorProyectoLogic = new CostosPorProyectoLogic();

        return costosPorProyectoLogic.getCostosPorProyecto();
    }

    public static void saveCostosPorProyecto(Integer id,
        Integer idcostos_Costos, Integer idproyecto_Proyectos)
        throws Exception {
        ICostosPorProyectoLogic costosPorProyectoLogic = new CostosPorProyectoLogic();
        costosPorProyectoLogic.saveCostosPorProyecto(id, idcostos_Costos,
            idproyecto_Proyectos);
    }

    public static void deleteCostosPorProyecto(Integer id)
        throws Exception {
        ICostosPorProyectoLogic costosPorProyectoLogic = new CostosPorProyectoLogic();
        costosPorProyectoLogic.deleteCostosPorProyecto(id);
    }

    public static void updateCostosPorProyecto(Integer id,
        Integer idcostos_Costos, Integer idproyecto_Proyectos)
        throws Exception {
        ICostosPorProyectoLogic costosPorProyectoLogic = new CostosPorProyectoLogic();
        costosPorProyectoLogic.updateCostosPorProyecto(id, idcostos_Costos,
            idproyecto_Proyectos);
    }

    public static CostosPorProyecto getCostosPorProyecto(Integer id)
        throws Exception {
        ICostosPorProyectoLogic costosPorProyectoLogic = new CostosPorProyectoLogic();
        CostosPorProyecto costosPorProyecto = null;

        try {
            costosPorProyecto = costosPorProyectoLogic.getCostosPorProyecto(id);
        } catch (Exception e) {
            throw e;
        }

        return costosPorProyecto;
    }

    public static List<CostosPorProyecto> findByCriteriaInCostosPorProyecto(
        Object[] variables, Object[] variablesBetween,
        Object[] variablesBetweenDates) throws Exception {
        ICostosPorProyectoLogic costosPorProyectoLogic = new CostosPorProyectoLogic();

        return costosPorProyectoLogic.findByCriteria(variables,
            variablesBetween, variablesBetweenDates);
    }

    public static List<CostosPorProyecto> findPageCostosPorProyecto(
        String sortColumnName, boolean sortAscending, int startRow,
        int maxResults) throws Exception {
        ICostosPorProyectoLogic costosPorProyectoLogic = new CostosPorProyectoLogic();

        return costosPorProyectoLogic.findPageCostosPorProyecto(sortColumnName,
            sortAscending, startRow, maxResults);
    }

    public static Long findTotalNumberCostosPorProyecto()
        throws Exception {
        ICostosPorProyectoLogic costosPorProyectoLogic = new CostosPorProyectoLogic();

        return costosPorProyectoLogic.findTotalNumberCostosPorProyecto();
    }

    public static List<Empresa> getEmpresa() throws Exception {
        IEmpresaLogic empresaLogic = new EmpresaLogic();

        return empresaLogic.getEmpresa();
    }

    public static void saveEmpresa(Integer id, String nombreempresa,
        Integer idusuario_Usuarios) throws Exception {
        IEmpresaLogic empresaLogic = new EmpresaLogic();
        empresaLogic.saveEmpresa(id, nombreempresa, idusuario_Usuarios);
    }

    public static void deleteEmpresa(Integer id) throws Exception {
        IEmpresaLogic empresaLogic = new EmpresaLogic();
        empresaLogic.deleteEmpresa(id);
    }

    public static void updateEmpresa(Integer id, String nombreempresa,
        Integer idusuario_Usuarios) throws Exception {
        IEmpresaLogic empresaLogic = new EmpresaLogic();
        empresaLogic.updateEmpresa(id, nombreempresa, idusuario_Usuarios);
    }

    public static Empresa getEmpresa(Integer id) throws Exception {
        IEmpresaLogic empresaLogic = new EmpresaLogic();
        Empresa empresa = null;

        try {
            empresa = empresaLogic.getEmpresa(id);
        } catch (Exception e) {
            throw e;
        }

        return empresa;
    }

    public static List<Empresa> findByCriteriaInEmpresa(Object[] variables,
        Object[] variablesBetween, Object[] variablesBetweenDates)
        throws Exception {
        IEmpresaLogic empresaLogic = new EmpresaLogic();

        return empresaLogic.findByCriteria(variables, variablesBetween,
            variablesBetweenDates);
    }

    public static List<Empresa> findPageEmpresa(String sortColumnName,
        boolean sortAscending, int startRow, int maxResults)
        throws Exception {
        IEmpresaLogic empresaLogic = new EmpresaLogic();

        return empresaLogic.findPageEmpresa(sortColumnName, sortAscending,
            startRow, maxResults);
    }

    public static Long findTotalNumberEmpresa() throws Exception {
        IEmpresaLogic empresaLogic = new EmpresaLogic();

        return empresaLogic.findTotalNumberEmpresa();
    }

    public static List<LenguajesDeprogramacion> getLenguajesDeprogramacion()
        throws Exception {
        ILenguajesDeprogramacionLogic lenguajesDeprogramacionLogic = new LenguajesDeprogramacionLogic();

        return lenguajesDeprogramacionLogic.getLenguajesDeprogramacion();
    }

    public static void saveLenguajesDeprogramacion(Integer idlenguaje,
        Integer instruccionporlenguaje, String nombre,
        Integer totalinstruccionesporlenguaje) throws Exception {
        ILenguajesDeprogramacionLogic lenguajesDeprogramacionLogic = new LenguajesDeprogramacionLogic();
        lenguajesDeprogramacionLogic.saveLenguajesDeprogramacion(idlenguaje,
            instruccionporlenguaje, nombre, totalinstruccionesporlenguaje);
    }

    public static void deleteLenguajesDeprogramacion(Integer idlenguaje)
        throws Exception {
        ILenguajesDeprogramacionLogic lenguajesDeprogramacionLogic = new LenguajesDeprogramacionLogic();
        lenguajesDeprogramacionLogic.deleteLenguajesDeprogramacion(idlenguaje);
    }

    public static void updateLenguajesDeprogramacion(Integer idlenguaje,
        Integer instruccionporlenguaje, String nombre,
        Integer totalinstruccionesporlenguaje) throws Exception {
        ILenguajesDeprogramacionLogic lenguajesDeprogramacionLogic = new LenguajesDeprogramacionLogic();
        lenguajesDeprogramacionLogic.updateLenguajesDeprogramacion(idlenguaje,
            instruccionporlenguaje, nombre, totalinstruccionesporlenguaje);
    }

    public static LenguajesDeprogramacion getLenguajesDeprogramacion(
        Integer idlenguaje) throws Exception {
        ILenguajesDeprogramacionLogic lenguajesDeprogramacionLogic = new LenguajesDeprogramacionLogic();
        LenguajesDeprogramacion lenguajesDeprogramacion = null;

        try {
            lenguajesDeprogramacion = lenguajesDeprogramacionLogic.getLenguajesDeprogramacion(idlenguaje);
        } catch (Exception e) {
            throw e;
        }

        return lenguajesDeprogramacion;
    }

    public static List<LenguajesDeprogramacion> findByCriteriaInLenguajesDeprogramacion(
        Object[] variables, Object[] variablesBetween,
        Object[] variablesBetweenDates) throws Exception {
        ILenguajesDeprogramacionLogic lenguajesDeprogramacionLogic = new LenguajesDeprogramacionLogic();

        return lenguajesDeprogramacionLogic.findByCriteria(variables,
            variablesBetween, variablesBetweenDates);
    }

    public static List<LenguajesDeprogramacion> findPageLenguajesDeprogramacion(
        String sortColumnName, boolean sortAscending, int startRow,
        int maxResults) throws Exception {
        ILenguajesDeprogramacionLogic lenguajesDeprogramacionLogic = new LenguajesDeprogramacionLogic();

        return lenguajesDeprogramacionLogic.findPageLenguajesDeprogramacion(sortColumnName,
            sortAscending, startRow, maxResults);
    }

    public static Long findTotalNumberLenguajesDeprogramacion()
        throws Exception {
        ILenguajesDeprogramacionLogic lenguajesDeprogramacionLogic = new LenguajesDeprogramacionLogic();

        return lenguajesDeprogramacionLogic.findTotalNumberLenguajesDeprogramacion();
    }

    public static List<Proyectos> getProyectos() throws Exception {
        IProyectosLogic proyectosLogic = new ProyectosLogic();

        return proyectosLogic.getProyectos();
    }

    public static void saveProyectos(Integer idproyecto,
        String lenguajeprogramacion, String nombregerenteproyecto,
        String nombreproyecto, Integer personalsugerido, Integer id_Empresa,
        Integer idlenguaje_LenguajesDeprogramacion) throws Exception {
        IProyectosLogic proyectosLogic = new ProyectosLogic();
        proyectosLogic.saveProyectos(idproyecto, lenguajeprogramacion,
            nombregerenteproyecto, nombreproyecto, personalsugerido,
            id_Empresa, idlenguaje_LenguajesDeprogramacion);
    }

    public static void deleteProyectos(Integer idproyecto)
        throws Exception {
        IProyectosLogic proyectosLogic = new ProyectosLogic();
        proyectosLogic.deleteProyectos(idproyecto);
    }

    public static void updateProyectos(Integer idproyecto,
        String lenguajeprogramacion, String nombregerenteproyecto,
        String nombreproyecto, Integer personalsugerido, Integer id_Empresa,
        Integer idlenguaje_LenguajesDeprogramacion) throws Exception {
        IProyectosLogic proyectosLogic = new ProyectosLogic();
        proyectosLogic.updateProyectos(idproyecto, lenguajeprogramacion,
            nombregerenteproyecto, nombreproyecto, personalsugerido,
            id_Empresa, idlenguaje_LenguajesDeprogramacion);
    }

    public static Proyectos getProyectos(Integer idproyecto)
        throws Exception {
        IProyectosLogic proyectosLogic = new ProyectosLogic();
        Proyectos proyectos = null;

        try {
            proyectos = proyectosLogic.getProyectos(idproyecto);
        } catch (Exception e) {
            throw e;
        }

        return proyectos;
    }

    public static List<Proyectos> findByCriteriaInProyectos(
        Object[] variables, Object[] variablesBetween,
        Object[] variablesBetweenDates) throws Exception {
        IProyectosLogic proyectosLogic = new ProyectosLogic();

        return proyectosLogic.findByCriteria(variables, variablesBetween,
            variablesBetweenDates);
    }

    public static List<Proyectos> findPageProyectos(String sortColumnName,
        boolean sortAscending, int startRow, int maxResults)
        throws Exception {
        IProyectosLogic proyectosLogic = new ProyectosLogic();

        return proyectosLogic.findPageProyectos(sortColumnName, sortAscending,
            startRow, maxResults);
    }

    public static Long findTotalNumberProyectos() throws Exception {
        IProyectosLogic proyectosLogic = new ProyectosLogic();

        return proyectosLogic.findTotalNumberProyectos();
    }

    public static List<ReglaEnProyecto> getReglaEnProyecto()
        throws Exception {
        IReglaEnProyectoLogic reglaEnProyectoLogic = new ReglaEnProyectoLogic();

        return reglaEnProyectoLogic.getReglaEnProyecto();
    }

    public static void saveReglaEnProyecto(Integer id, Integer totalregla,
        Integer idproyecto_Proyectos, Integer idregla_Reglas)
        throws Exception {
        IReglaEnProyectoLogic reglaEnProyectoLogic = new ReglaEnProyectoLogic();
        reglaEnProyectoLogic.saveReglaEnProyecto(id, totalregla,
            idproyecto_Proyectos, idregla_Reglas);
    }

    public static void deleteReglaEnProyecto(Integer id)
        throws Exception {
        IReglaEnProyectoLogic reglaEnProyectoLogic = new ReglaEnProyectoLogic();
        reglaEnProyectoLogic.deleteReglaEnProyecto(id);
    }

    public static void updateReglaEnProyecto(Integer id, Integer totalregla,
        Integer idproyecto_Proyectos, Integer idregla_Reglas)
        throws Exception {
        IReglaEnProyectoLogic reglaEnProyectoLogic = new ReglaEnProyectoLogic();
        reglaEnProyectoLogic.updateReglaEnProyecto(id, totalregla,
            idproyecto_Proyectos, idregla_Reglas);
    }

    public static ReglaEnProyecto getReglaEnProyecto(Integer id)
        throws Exception {
        IReglaEnProyectoLogic reglaEnProyectoLogic = new ReglaEnProyectoLogic();
        ReglaEnProyecto reglaEnProyecto = null;

        try {
            reglaEnProyecto = reglaEnProyectoLogic.getReglaEnProyecto(id);
        } catch (Exception e) {
            throw e;
        }

        return reglaEnProyecto;
    }

    public static List<ReglaEnProyecto> findByCriteriaInReglaEnProyecto(
        Object[] variables, Object[] variablesBetween,
        Object[] variablesBetweenDates) throws Exception {
        IReglaEnProyectoLogic reglaEnProyectoLogic = new ReglaEnProyectoLogic();

        return reglaEnProyectoLogic.findByCriteria(variables, variablesBetween,
            variablesBetweenDates);
    }

    public static List<ReglaEnProyecto> findPageReglaEnProyecto(
        String sortColumnName, boolean sortAscending, int startRow,
        int maxResults) throws Exception {
        IReglaEnProyectoLogic reglaEnProyectoLogic = new ReglaEnProyectoLogic();

        return reglaEnProyectoLogic.findPageReglaEnProyecto(sortColumnName,
            sortAscending, startRow, maxResults);
    }

    public static Long findTotalNumberReglaEnProyecto()
        throws Exception {
        IReglaEnProyectoLogic reglaEnProyectoLogic = new ReglaEnProyectoLogic();

        return reglaEnProyectoLogic.findTotalNumberReglaEnProyecto();
    }

    public static List<Reglas> getReglas() throws Exception {
        IReglasLogic reglasLogic = new ReglasLogic();

        return reglasLogic.getReglas();
    }

    public static void saveReglas(Integer factorFormulaRegla, Integer idregla,
        String nombreregla) throws Exception {
        IReglasLogic reglasLogic = new ReglasLogic();
        reglasLogic.saveReglas(factorFormulaRegla, idregla, nombreregla);
    }

    public static void deleteReglas(Integer idregla) throws Exception {
        IReglasLogic reglasLogic = new ReglasLogic();
        reglasLogic.deleteReglas(idregla);
    }

    public static void updateReglas(Integer factorFormulaRegla,
        Integer idregla, String nombreregla) throws Exception {
        IReglasLogic reglasLogic = new ReglasLogic();
        reglasLogic.updateReglas(factorFormulaRegla, idregla, nombreregla);
    }

    public static Reglas getReglas(Integer idregla) throws Exception {
        IReglasLogic reglasLogic = new ReglasLogic();
        Reglas reglas = null;

        try {
            reglas = reglasLogic.getReglas(idregla);
        } catch (Exception e) {
            throw e;
        }

        return reglas;
    }

    public static List<Reglas> findByCriteriaInReglas(Object[] variables,
        Object[] variablesBetween, Object[] variablesBetweenDates)
        throws Exception {
        IReglasLogic reglasLogic = new ReglasLogic();

        return reglasLogic.findByCriteria(variables, variablesBetween,
            variablesBetweenDates);
    }

    public static List<Reglas> findPageReglas(String sortColumnName,
        boolean sortAscending, int startRow, int maxResults)
        throws Exception {
        IReglasLogic reglasLogic = new ReglasLogic();

        return reglasLogic.findPageReglas(sortColumnName, sortAscending,
            startRow, maxResults);
    }

    public static Long findTotalNumberReglas() throws Exception {
        IReglasLogic reglasLogic = new ReglasLogic();

        return reglasLogic.findTotalNumberReglas();
    }

    public static List<Subactividad> getSubactividad()
        throws Exception {
        ISubactividadLogic subactividadLogic = new SubactividadLogic();

        return subactividadLogic.getSubactividad();
    }

    public static void saveSubactividad(String actividadesconcurrentes,
        String actividadespredecesoras, String actividadessucesoras,
        String descripcionsubactividad, Integer factorFormulaSubactividad,
        Integer idsubactividad, String nombresubactividad,
        String realizadaspor, String secuenciadeactividades,
        String superposicion) throws Exception {
        ISubactividadLogic subactividadLogic = new SubactividadLogic();
        subactividadLogic.saveSubactividad(actividadesconcurrentes,
            actividadespredecesoras, actividadessucesoras,
            descripcionsubactividad, factorFormulaSubactividad, idsubactividad,
            nombresubactividad, realizadaspor, secuenciadeactividades,
            superposicion);
    }

    public static void deleteSubactividad(Integer idsubactividad)
        throws Exception {
        ISubactividadLogic subactividadLogic = new SubactividadLogic();
        subactividadLogic.deleteSubactividad(idsubactividad);
    }

    public static void updateSubactividad(String actividadesconcurrentes,
        String actividadespredecesoras, String actividadessucesoras,
        String descripcionsubactividad, Integer factorFormulaSubactividad,
        Integer idsubactividad, String nombresubactividad,
        String realizadaspor, String secuenciadeactividades,
        String superposicion) throws Exception {
        ISubactividadLogic subactividadLogic = new SubactividadLogic();
        subactividadLogic.updateSubactividad(actividadesconcurrentes,
            actividadespredecesoras, actividadessucesoras,
            descripcionsubactividad, factorFormulaSubactividad, idsubactividad,
            nombresubactividad, realizadaspor, secuenciadeactividades,
            superposicion);
    }

    public static Subactividad getSubactividad(Integer idsubactividad)
        throws Exception {
        ISubactividadLogic subactividadLogic = new SubactividadLogic();
        Subactividad subactividad = null;

        try {
            subactividad = subactividadLogic.getSubactividad(idsubactividad);
        } catch (Exception e) {
            throw e;
        }

        return subactividad;
    }

    public static List<Subactividad> findByCriteriaInSubactividad(
        Object[] variables, Object[] variablesBetween,
        Object[] variablesBetweenDates) throws Exception {
        ISubactividadLogic subactividadLogic = new SubactividadLogic();

        return subactividadLogic.findByCriteria(variables, variablesBetween,
            variablesBetweenDates);
    }

    public static List<Subactividad> findPageSubactividad(
        String sortColumnName, boolean sortAscending, int startRow,
        int maxResults) throws Exception {
        ISubactividadLogic subactividadLogic = new SubactividadLogic();

        return subactividadLogic.findPageSubactividad(sortColumnName,
            sortAscending, startRow, maxResults);
    }

    public static Long findTotalNumberSubactividad() throws Exception {
        ISubactividadLogic subactividadLogic = new SubactividadLogic();

        return subactividadLogic.findTotalNumberSubactividad();
    }

    public static List<SubactividadPorActividad> getSubactividadPorActividad()
        throws Exception {
        ISubactividadPorActividadLogic subactividadPorActividadLogic = new SubactividadPorActividadLogic();

        return subactividadPorActividadLogic.getSubactividadPorActividad();
    }

    public static void saveSubactividadPorActividad(
        Integer ambitosdeasignacion2, Integer ambitosdeasignacionenpf,
        Integer defectosdealtaseveridad, Integer defectosentregados,
        Integer defectosentregados2, Integer eliminaciondedefectos,
        Date fechaestimadasubactFin, Date fechaestimadasubactInicio,
        Date fechalimiteestimada, Integer id, Integer indicedeproduccionpf,
        Integer indicedeproduccionpf2, Integer indiceincrementocambiomensual,
        Integer potencialdedefectos1, Integer potencialdedefectos2,
        Integer probabilidaddereparacionesdefectuosas, Integer reutilizacion,
        Integer tamanoderequisitosencasosdeuso,
        Integer tamanoinicialdesubactv1, Integer tamanoinicialdesubactv2,
        Integer volumenesdegraficos, Integer idactividad_Actividades,
        Integer idsubactividad_Subactividad) throws Exception {
        ISubactividadPorActividadLogic subactividadPorActividadLogic = new SubactividadPorActividadLogic();
        subactividadPorActividadLogic.saveSubactividadPorActividad(ambitosdeasignacion2,
            ambitosdeasignacionenpf, defectosdealtaseveridad,
            defectosentregados, defectosentregados2, eliminaciondedefectos,
            fechaestimadasubactFin, fechaestimadasubactInicio,
            fechalimiteestimada, id, indicedeproduccionpf,
            indicedeproduccionpf2, indiceincrementocambiomensual,
            potencialdedefectos1, potencialdedefectos2,
            probabilidaddereparacionesdefectuosas, reutilizacion,
            tamanoderequisitosencasosdeuso, tamanoinicialdesubactv1,
            tamanoinicialdesubactv2, volumenesdegraficos,
            idactividad_Actividades, idsubactividad_Subactividad);
    }

    public static void deleteSubactividadPorActividad(Integer id)
        throws Exception {
        ISubactividadPorActividadLogic subactividadPorActividadLogic = new SubactividadPorActividadLogic();
        subactividadPorActividadLogic.deleteSubactividadPorActividad(id);
    }

    public static void updateSubactividadPorActividad(
        Integer ambitosdeasignacion2, Integer ambitosdeasignacionenpf,
        Integer defectosdealtaseveridad, Integer defectosentregados,
        Integer defectosentregados2, Integer eliminaciondedefectos,
        Date fechaestimadasubactFin, Date fechaestimadasubactInicio,
        Date fechalimiteestimada, Integer id, Integer indicedeproduccionpf,
        Integer indicedeproduccionpf2, Integer indiceincrementocambiomensual,
        Integer potencialdedefectos1, Integer potencialdedefectos2,
        Integer probabilidaddereparacionesdefectuosas, Integer reutilizacion,
        Integer tamanoderequisitosencasosdeuso,
        Integer tamanoinicialdesubactv1, Integer tamanoinicialdesubactv2,
        Integer volumenesdegraficos, Integer idactividad_Actividades,
        Integer idsubactividad_Subactividad) throws Exception {
        ISubactividadPorActividadLogic subactividadPorActividadLogic = new SubactividadPorActividadLogic();
        subactividadPorActividadLogic.updateSubactividadPorActividad(ambitosdeasignacion2,
            ambitosdeasignacionenpf, defectosdealtaseveridad,
            defectosentregados, defectosentregados2, eliminaciondedefectos,
            fechaestimadasubactFin, fechaestimadasubactInicio,
            fechalimiteestimada, id, indicedeproduccionpf,
            indicedeproduccionpf2, indiceincrementocambiomensual,
            potencialdedefectos1, potencialdedefectos2,
            probabilidaddereparacionesdefectuosas, reutilizacion,
            tamanoderequisitosencasosdeuso, tamanoinicialdesubactv1,
            tamanoinicialdesubactv2, volumenesdegraficos,
            idactividad_Actividades, idsubactividad_Subactividad);
    }

    public static SubactividadPorActividad getSubactividadPorActividad(
        Integer id) throws Exception {
        ISubactividadPorActividadLogic subactividadPorActividadLogic = new SubactividadPorActividadLogic();
        SubactividadPorActividad subactividadPorActividad = null;

        try {
            subactividadPorActividad = subactividadPorActividadLogic.getSubactividadPorActividad(id);
        } catch (Exception e) {
            throw e;
        }

        return subactividadPorActividad;
    }

    public static List<SubactividadPorActividad> findByCriteriaInSubactividadPorActividad(
        Object[] variables, Object[] variablesBetween,
        Object[] variablesBetweenDates) throws Exception {
        ISubactividadPorActividadLogic subactividadPorActividadLogic = new SubactividadPorActividadLogic();

        return subactividadPorActividadLogic.findByCriteria(variables,
            variablesBetween, variablesBetweenDates);
    }

    public static List<SubactividadPorActividad> findPageSubactividadPorActividad(
        String sortColumnName, boolean sortAscending, int startRow,
        int maxResults) throws Exception {
        ISubactividadPorActividadLogic subactividadPorActividadLogic = new SubactividadPorActividadLogic();

        return subactividadPorActividadLogic.findPageSubactividadPorActividad(sortColumnName,
            sortAscending, startRow, maxResults);
    }

    public static Long findTotalNumberSubactividadPorActividad()
        throws Exception {
        ISubactividadPorActividadLogic subactividadPorActividadLogic = new SubactividadPorActividadLogic();

        return subactividadPorActividadLogic.findTotalNumberSubactividadPorActividad();
    }

    public static List<Taxonomia> getTaxonomia() throws Exception {
        ITaxonomiaLogic taxonomiaLogic = new TaxonomiaLogic();

        return taxonomiaLogic.getTaxonomia();
    }

    public static void saveTaxonomia(Integer factorpotenciataxonm,
        Integer idtaxonomia, Integer pf, Integer idambito_Ambitos,
        Integer idclases_Clases, Integer idproyecto_Proyectos,
        Integer idtipo_Tipos) throws Exception {
        ITaxonomiaLogic taxonomiaLogic = new TaxonomiaLogic();
        taxonomiaLogic.saveTaxonomia(factorpotenciataxonm, idtaxonomia, pf,
            idambito_Ambitos, idclases_Clases, idproyecto_Proyectos,
            idtipo_Tipos);
    }

    public static void deleteTaxonomia(Integer idtaxonomia)
        throws Exception {
        ITaxonomiaLogic taxonomiaLogic = new TaxonomiaLogic();
        taxonomiaLogic.deleteTaxonomia(idtaxonomia);
    }

    public static void updateTaxonomia(Integer factorpotenciataxonm,
        Integer idtaxonomia, Integer pf, Integer idambito_Ambitos,
        Integer idclases_Clases, Integer idproyecto_Proyectos,
        Integer idtipo_Tipos) throws Exception {
        ITaxonomiaLogic taxonomiaLogic = new TaxonomiaLogic();
        taxonomiaLogic.updateTaxonomia(factorpotenciataxonm, idtaxonomia, pf,
            idambito_Ambitos, idclases_Clases, idproyecto_Proyectos,
            idtipo_Tipos);
    }

    public static Taxonomia getTaxonomia(Integer idtaxonomia)
        throws Exception {
        ITaxonomiaLogic taxonomiaLogic = new TaxonomiaLogic();
        Taxonomia taxonomia = null;

        try {
            taxonomia = taxonomiaLogic.getTaxonomia(idtaxonomia);
        } catch (Exception e) {
            throw e;
        }

        return taxonomia;
    }

    public static List<Taxonomia> findByCriteriaInTaxonomia(
        Object[] variables, Object[] variablesBetween,
        Object[] variablesBetweenDates) throws Exception {
        ITaxonomiaLogic taxonomiaLogic = new TaxonomiaLogic();

        return taxonomiaLogic.findByCriteria(variables, variablesBetween,
            variablesBetweenDates);
    }

    public static List<Taxonomia> findPageTaxonomia(String sortColumnName,
        boolean sortAscending, int startRow, int maxResults)
        throws Exception {
        ITaxonomiaLogic taxonomiaLogic = new TaxonomiaLogic();

        return taxonomiaLogic.findPageTaxonomia(sortColumnName, sortAscending,
            startRow, maxResults);
    }

    public static Long findTotalNumberTaxonomia() throws Exception {
        ITaxonomiaLogic taxonomiaLogic = new TaxonomiaLogic();

        return taxonomiaLogic.findTotalNumberTaxonomia();
    }

    public static List<Tipos> getTipos() throws Exception {
        ITiposLogic tiposLogic = new TiposLogic();

        return tiposLogic.getTipos();
    }

    public static void saveTipos(Integer idtipo, String nombretipo)
        throws Exception {
        ITiposLogic tiposLogic = new TiposLogic();
        tiposLogic.saveTipos(idtipo, nombretipo);
    }

    public static void deleteTipos(Integer idtipo) throws Exception {
        ITiposLogic tiposLogic = new TiposLogic();
        tiposLogic.deleteTipos(idtipo);
    }

    public static void updateTipos(Integer idtipo, String nombretipo)
        throws Exception {
        ITiposLogic tiposLogic = new TiposLogic();
        tiposLogic.updateTipos(idtipo, nombretipo);
    }

    public static Tipos getTipos(Integer idtipo) throws Exception {
        ITiposLogic tiposLogic = new TiposLogic();
        Tipos tipos = null;

        try {
            tipos = tiposLogic.getTipos(idtipo);
        } catch (Exception e) {
            throw e;
        }

        return tipos;
    }

    public static List<Tipos> findByCriteriaInTipos(Object[] variables,
        Object[] variablesBetween, Object[] variablesBetweenDates)
        throws Exception {
        ITiposLogic tiposLogic = new TiposLogic();

        return tiposLogic.findByCriteria(variables, variablesBetween,
            variablesBetweenDates);
    }

    public static List<Tipos> findPageTipos(String sortColumnName,
        boolean sortAscending, int startRow, int maxResults)
        throws Exception {
        ITiposLogic tiposLogic = new TiposLogic();

        return tiposLogic.findPageTipos(sortColumnName, sortAscending,
            startRow, maxResults);
    }

    public static Long findTotalNumberTipos() throws Exception {
        ITiposLogic tiposLogic = new TiposLogic();

        return tiposLogic.findTotalNumberTipos();
    }

    public static List<Usuarios> getUsuarios() throws Exception {
        IUsuariosLogic usuariosLogic = new UsuariosLogic();

        return usuariosLogic.getUsuarios();
    }

    public static void saveUsuarios(Integer idusuario, String login,
        String password) throws Exception {
        IUsuariosLogic usuariosLogic = new UsuariosLogic();
        usuariosLogic.saveUsuarios(idusuario, login, password);
    }

    public static void deleteUsuarios(Integer idusuario)
        throws Exception {
        IUsuariosLogic usuariosLogic = new UsuariosLogic();
        usuariosLogic.deleteUsuarios(idusuario);
    }

    public static void updateUsuarios(Integer idusuario, String login,
        String password) throws Exception {
        IUsuariosLogic usuariosLogic = new UsuariosLogic();
        usuariosLogic.updateUsuarios(idusuario, login, password);
    }

    public static Usuarios getUsuarios(Integer idusuario)
        throws Exception {
        IUsuariosLogic usuariosLogic = new UsuariosLogic();
        Usuarios usuarios = null;

        try {
            usuarios = usuariosLogic.getUsuarios(idusuario);
        } catch (Exception e) {
            throw e;
        }

        return usuarios;
    }

    public static List<Usuarios> findByCriteriaInUsuarios(Object[] variables,
        Object[] variablesBetween, Object[] variablesBetweenDates)
        throws Exception {
        IUsuariosLogic usuariosLogic = new UsuariosLogic();

        return usuariosLogic.findByCriteria(variables, variablesBetween,
            variablesBetweenDates);
    }

    public static List<Usuarios> findPageUsuarios(String sortColumnName,
        boolean sortAscending, int startRow, int maxResults)
        throws Exception {
        IUsuariosLogic usuariosLogic = new UsuariosLogic();

        return usuariosLogic.findPageUsuarios(sortColumnName, sortAscending,
            startRow, maxResults);
    }

    public static Long findTotalNumberUsuarios() throws Exception {
        IUsuariosLogic usuariosLogic = new UsuariosLogic();

        return usuariosLogic.findTotalNumberUsuarios();
    }
}
